#ifndef __CORE_FACTORY_A_H_
#define __CORE_FACTORY_A_H_

#include "core_factory.h"
#include "multi_core_a.h"
#include "single_core_a.h"

class CoreFactoryA : public CoreFactory
{
    public:
        virtual std::shared_ptr<SingleCore> CreateSingleCore() override 
        {
            return std::static_pointer_cast<SingleCore>(std::make_shared<SingleCoreA>());
        }

        virtual std::shared_ptr<MultiCore> CreateMultiCore() override
        {
            return std::static_pointer_cast<MultiCore>(std::make_shared<MultiCoreA>());
        }
}; 

#endif

